/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* E.P. Scene Graph
* Developed by:
*       - Eduardo Ribeiro (eribeiro @ tecgraf . puc-rio . br)
*       - Peter Dam (peter @ tecgraf . puc-rio . br)
* File: Material.h
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef _EPSG_MATERIAL_
#define _EPSG_MATERIAL_

#include "EPSG/Appearance.h"
#include "EPSG/Vec4.h"

namespace EPSG
{
	class Material : public Appearance
	{
	public:
		/* [CONSTRUCTOR] */	Material();

		virtual bool		load();
		virtual void		unload();
		
		void				setAmbient( float r, float g, float b, float a );
		void				setDiffuse( float r, float g, float b, float a );
		void				setSpecular( float r, float g, float b, float a );
		void				setShininess( float shininess );

		static EPSG::Material*		whiteMaterial();

	private:
		float				_ambient[4];
		float				_diffuse[4];
		float				_specular[4];
		float				_shininess;

		static EPSG::Material*	_whiteMaterial;
	};
}

#endif //_EPSG_MATERIAL_